home *** CD-ROM | disk | FTP | other *** search
- /* GadTools layout toolkit
- **
- ** Copyright © 1993-1995 by Olaf `Olsen' Barthel
- ** Freely distributable.
- */
-
- #include "gtlayout_global.h"
-
- ULONG __asm __saveds
- LTP_DefaultHistoryHook(register __a0 struct Hook *Hook,register __a1 STRPTR NewString,register __a2 struct Gadget *Gadget)
- {
- ObjectNode *Node = (ObjectNode *)Gadget -> UserData;
- struct LayoutHandle *Handle = Node -> Special . String . LayoutHandle;
- struct MinList *List = (struct MinList *)Hook -> h_Data;
-
- if(NewString)
- {
- ULONG *Data;
-
- if(Data = (ULONG *)LTP_Alloc(Handle,sizeof(ULONG) + sizeof(struct Node) + strlen(NewString) + 1))
- {
- struct Node *NewNode;
-
- *Data++ = sizeof(ULONG) + sizeof(struct Node) + strlen(NewString) + 1;
-
- NewNode = (struct Node *)Data;
-
- NewNode -> ln_Name = (STRPTR)(NewNode + 1);
-
- strcpy(NewNode -> ln_Name,NewString);
-
- AddTail((struct List *)List,NewNode);
- }
- else
- return(FALSE);
- }
- else
- {
- if(List -> mlh_Head -> mln_Succ)
- {
- ULONG *Data = (ULONG *)RemHead((struct List *)List);
-
- LTP_Free(Handle,&Data[-1],Data[-1]);
- }
- }
-
- return(TRUE);
- }
-